struct _CM_KEY_NODE// Size=0x50
{
    unsigned short Signature;// Offset=0x0 Size=0x2
    unsigned short Flags;// Offset=0x2 Size=0x2
    union _LARGE_INTEGER LastWriteTime;// Offset=0x4 Size=0x8
    unsigned long Spare;// Offset=0xc Size=0x4
    unsigned long Parent;// Offset=0x10 Size=0x4
    unsigned long SubKeyCounts[2];// Offset=0x14 Size=0x8
    unsigned long SubKeyLists[2];// Offset=0x1c Size=0x8
    struct _CHILD_LIST ValueList;// Offset=0x24 Size=0x8
    struct _CM_KEY_REFERENCE ChildHiveReference;// Offset=0x1c Size=0x10
    unsigned long Security;// Offset=0x2c Size=0x4
    unsigned long Class;// Offset=0x30 Size=0x4
    unsigned long MaxNameLen:16;// Offset=0x34 Size=0x4 BitOffset=0x0 BitSize=0x10
    unsigned long UserFlags:4;// Offset=0x34 Size=0x4 BitOffset=0x10 BitSize=0x4
    unsigned long VirtControlFlags:4;// Offset=0x34 Size=0x4 BitOffset=0x14 BitSize=0x4
    unsigned long Debug:8;// Offset=0x34 Size=0x4 BitOffset=0x18 BitSize=0x8
    unsigned long MaxClassLen;// Offset=0x38 Size=0x4
    unsigned long MaxValueNameLen;// Offset=0x3c Size=0x4
    unsigned long MaxValueDataLen;// Offset=0x40 Size=0x4
    unsigned long WorkVar;// Offset=0x44 Size=0x4
    unsigned short NameLength;// Offset=0x48 Size=0x2
    unsigned short ClassLength;// Offset=0x4a Size=0x2
    wchar_t Name[1];// Offset=0x4c Size=0x2
};